<template>
  <div id="exportExcelTemplate" hidden style="display: none"></div>
</template>

<script>
import xyFileSaver from "file-saver";
import Vue from "vue/dist/vue.esm.js";
import xyXLSX from "xlsx";
import moment from 'moment'

/**
 * 导出excel模板
 */
export default {
  mounted() {},
  components: {},
  props: {},
  data() {
    return {};
  },
  computed: {},
  methods: {
    /**
     * 使用格式
     * tabName:导出文件名称
     * tabHandle://表头必须和tabData的字段排序一样
     **/
    exportExcel(tabName, tabHandle, tableData) {
      //判断表头和数据字段数量是否一致()
      // if ((tabHandle.length) !== Object.keys(Object.values(tabData)[0]).length) {
      //     throw new Error('表头长度和数据长度不一致!');
      // }
      /**
       * 拼接tab
       */
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      //身份证号
      // str0 += "<td>身份证号</td>";

      //审核意见（可能有多个）
      let maxOpinionsCount = [];
      for (let i in tableData) {
        //如果有多个审核意见
        if (tableData[i].opinions.length > maxOpinionsCount.length) {
          maxOpinionsCount = tableData[i].opinions;
        }
      }
      // if (maxOpinionsCount.length == 1) {
      //   str0 += "<td>审核意见</td>";
      // } else if (maxOpinionsCount.length > 1) {
      //   for (let m in maxOpinionsCount) {
      //     m *= 1;
      //     str0 += "<td>审核意见" + (m + 1) + "</td>";
      //   }
      // }
      str0 += "</tr>";
      for (let i in tableData) {
        let index = parseInt(i) + 1;
        if (tableData[i].opinions.length > 0) {
          //如果有多个审核意见
          let review = "";
          // for (let j = 0; j < tableData[i].opinions.length; j++) {
          //   review += "<td>" + tableData[i].opinions[j].review + "</td>";
          // }
          str +=
            `<tr><td>${index}</td>` +
              `<td>${this.getOrderCreateTime(tableData[i].created_at)}</td>` + // 订单总耗时
              `<td>${this.getOrderCreateTime(tableData[i].pick_up_date)}</td>` + // 代理人处理耗时
              `<td>${tableData[i].order_number}</td>` + // 订单编号
              `<td>${tableData[i].patent_name}</td>` + // 拟申报名称
              `<td>${tableData[i].status}</td>` + // 流程状态
              `<td>${tableData[i].type}</td>` + // 流程状态
              `<td>${tableData[i].agent ? tableData[i].agent.name : ""}</td>` +
              `<td>${tableData[i].patent_user}</td>` +
              `<td>${tableData[i].user_name}</td>` +
              `<td>${tableData[i].liaisons}</td>` +
              `<td>${tableData[i].liaisons_tel}</td>` +
              `<td>${tableData[i].liaisons_email}</td>` +
              `<td>${tableData[i].process ? tableData[i].process.name : ''}</td>` +
              `<td>${tableData[i].remarks}</td>` +
              `<td>${tableData[i].created_at}</td>` +
              `<td>${tableData[i].updated_at}</td>`
              // `<td>${tableData[i].opinions_count}</td>` +
              // `<td>'${tableData[i].id_card}</td>`
              // + review + `</tr>`;
        } else {
          str +=
            `<tr><td>${index}</td>` +
              `<td>${this.getOrderCreateTime(tableData[i].created_at)}</td>` + // 订单总耗时
              `<td>${this.getOrderCreateTime(tableData[i].pick_up_date)}</td>` + // 代理人处理耗时
              `<td>${tableData[i].order_number}</td>` + // 订单编号
              `<td>${tableData[i].patent_name}</td>` + // 拟申报名称
              `<td>${tableData[i].status}</td>` + // 流程状态
              `<td>${tableData[i].type}</td>` + // 流程状态
              `<td>${tableData[i].agent ? tableData[i].agent.name : ""}</td>` +
              `<td>${tableData[i].patent_user}</td>` +
              `<td>${tableData[i].user_name}</td>` +
              `<td>${tableData[i].liaisons}</td>` +
              `<td>${tableData[i].liaisons_tel}</td>` +
              `<td>${tableData[i].liaisons_email}</td>` +
              `<td>${tableData[i].process ? tableData[i].process.name : ''}</td>` +
              `<td>${tableData[i].remarks}</td>` +
              `<td>${tableData[i].created_at}</td>` +
              `<td>${tableData[i].updated_at}</td>`
        }
      }
      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `<div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
              {{dataStr}}
            </table>
          </div>`
      });

      let wb = xyXLSX.utils.table_to_book(template.$el);
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array",

      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },


    getProcessingTime(value) {
      //获取接单的时间戳

      let createTime = new Date(value.created_at).getTime();
      let nowTime = "";

      if (value.status == "等待提交国知局") {
        nowTime = new Date().getTime();
      } else {
        nowTime = new Date(value.submit_at).getTime();
      }
      // let nowTime = new Date(value.created_at).getTime();
      // if (value.submit_at) {
      // 	createTime = new Date(value.submit_at).getTime();
      // } else {
      // 	createTime = new Date(value.updated_at).getTime();
      // }
      //获取处理时间戳
      let cha = nowTime - createTime;

      // function IsNaN(value) {
      // 	return typeof value === 'number' && isNaN(value);
      // }
      // if (IsNaN(cha)) {
      // 	return ''
      // }
      if (cha < 0) {
        cha = 0;
      }
      //转换天数
      let day = Math.ceil(cha / 1000 / 60 / 60 / 24);
      let processingTime = day;
      if (day <= 0) {
        let processingTime = 0;
      }
      return processingTime;
    },

    //订单创建时间
    getOrderCreateTime(value) {
      // createDay = createDay.replace(/-/g, "/");
      let createTime = new Date(value).getTime();
      //获取当前的时间戳
      var nowTime = new Date().getTime();
      //获取处理时间戳
      let cha = nowTime - createTime;

      function IsNaN(value) {
        return typeof value === 'number' && isNaN(value);
      }
      if (IsNaN(cha)) {
        return ''
      }
      //转换天数
      let day = Math.ceil(cha / 1000 / 60 / 60 / 24);
      let processingTime = day
      if (day <= 0) {
        processingTime = 0
      }
      return processingTime
    },

    //更新时间，做过倒序，直接拿第一条
    getUpdateTime(val) {
      let statusArr = val.statuss;
      if (statusArr[0]) {
        let createDay = statusArr[0].pivot.created_at;
      }
      return createDay;
    },
    //合并表格的导出
    exportExcelToIP2(tabName, tabHandle, tableData) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      //审核意见（可能有多个）
      let maxOpinionsCount = [];
      for (let i in tableData) {
        //如果有多个审核意见

        if (tableData[i].order) {
          if (tableData[i].order.opinions.length > maxOpinionsCount.length) {
            maxOpinionsCount = tableData[i].order.opinions;
          }
        }
      }
      // if (maxOpinionsCount.length == 1) {
      //   str0 += "<td>审核意见</td>";
      // } else if (maxOpinionsCount.length > 1) {
      //   for (let m in maxOpinionsCount) {
      //     m *= 1;
      //     str0 += "<td>审核意见" + (m + 1) + "</td>";
      //   }
      // }
      str0 += "";

      for (let i in tableData) {
        switch (tableData[i].type) {
          case "F":
            tableData[i].type = "发明专利";
            break;
          case "W":
            tableData[i].type = "外观设计";
            break;
          case "S":
            tableData[i].type = "实用新型";
            break;
        }
        if (tableData[i].order && tableData[i].order.user_name.split("，")) {
          tableData[i].first_user = tableData[i].order.user_name.split("，")[0];
        }
        let index = parseInt(i) + 1;
        if (tableData[i].order) {
          if (tableData[i].order.opinions.length > 0) {
            //如果有多个审核意见
            let review = "";
            for (let j = 0; j < tableData[i].order.opinions.length; j++) {
              review +=
                "<td>" + tableData[i].order.opinions[j].review + "</td>";
            }
            str +=
              `<tr><td>${index}</td>` +
              `<td>${tableData[i].order_number}</td>` + // 订单编号
              `<td>${tableData[i].order.patent_name}</td>` + // 拟申报名称
              `<td>${tableData[i].name ? tableData[i].name : ""}</td>` + // 定稿名称
              `<td>${tableData[i].agent ? tableData[i].agent.name : ""}</td>` + //代理人
              `<td>${tableData[i].type}</td>` + // 专利类型
              `<td>${tableData[i].application_number ? tableData[i].application_number: ''}</td>` + // 申请号
              `<td>${tableData[i].submit_at ? tableData[i].submit_at : ""}</td>` + // 申报时间
              // `<td>${tableData[i].updated_at}</td>` + // 更新时间
              `<td>${tableData[i].created_at}</td>` + // 定稿时间
              `<td>${tableData[i].order.created_at}</td>` + // 发明人定稿时间
              `<td>${tableData[i].first_user}</td>` + // 第一发明人
              `<td>${tableData[i].order.id_card}</td>` + // 身份证号
              `<td>${tableData[i].order.patent_user}</td>` + // 专利权人
              `<td>${tableData[i].order.user_name}</td>` + // 发明人
              `<td>${tableData[i].order.liaisons}</td>` + //联络人
              `<td>${tableData[i].order.liaisons_email}</td>` + // 邮箱
              `<td>${tableData[i].order.liaisons_tel}</td>` + // 电话
              `<td>${this.getProcessingTime(tableData[i], 7)}</td>` + // 订单耗时
              `<td>${tableData[i].status}</td>`; // 流程状态
              `<td>${tableData[i].order.remarks}</td>`; // 备注
            // +`<td>${tableData[i].organization}</td>` // 提交机构
            // +`<td>${tableData[i].application_number}</td>` // 申请号
            // +`<td>${tableData[i].order.process.name}</td>` // 流程人员
            // +`<td>${tableData[i].order.opinions.length}</td>` // 审核次数
            // +`<td>${tableData[i].created_at}</td>` // 定稿时间
            // + review + `</tr>`;
          } else {
            str +=
              `<tr><td>${index}</td>` +
              `<td>${tableData[i].order_number}</td>` + // 订单编号
              `<td>${tableData[i].order.patent_name}</td>` + // 拟申报名称
              `<td>${tableData[i].name ? tableData[i].name : ""}</td>` + // 定稿名称
              `<td>${tableData[i].agent ? tableData[i].agent.name : ""}</td>` + //代理人
              `<td>${tableData[i].type}</td>` + // 专利类型
              `<td>${tableData[i].application_number ? tableData[i].application_number: ''}</td>` + // 申请号
              `<td>${tableData[i].submit_at ? tableData[i].submit_at : ""}</td>` + // 申报时间
              // `<td>${tableData[i].updated_at}</td>` + // 更新时间
              `<td>${tableData[i].created_at}</td>` + // 定稿时间
              `<td>${tableData[i].order.created_at}</td>` + // 发明人定稿时间
              `<td>${tableData[i].first_user}</td>` + // 第一发明人
              `<td>${tableData[i].order.id_card}</td>` + // 身份证号
              `<td>${tableData[i].order.patent_user}</td>` + // 专利权人
              `<td>${tableData[i].order.user_name}</td>` + // 发明人
              `<td>${tableData[i].order.liaisons}</td>` + //联络人
              `<td>${tableData[i].order.liaisons_email}</td>` + // 邮箱
              `<td>${tableData[i].order.liaisons_tel}</td>` + // 电话
              `<td>${this.getProcessingTime(tableData[i], 7)}</td>` + // 订单耗时
              `<td>${tableData[i].status}</td>` + // 流程状态
              `<td>${tableData[i].order.remarks}</td>`; // 备注
              // +`<td>${tableData[i].organization}</td>` // 提交机构
              // +`<td>${tableData[i].application_number}</td>` // 申请号
              // +`<td>${tableData[i].order.process.name}</td>` // 流程人员
              // +`<td>${tableData[i].order.opinions.length}</td>` // 审核次数
              // +`<td>${tableData[i].created_at}</td>` // 定稿时间
              // + review + `</tr>`;
              `</tr>`;
          }
        } else {
          str +=
            `<tr><td>${index}</td>` +
            `<td>${tableData[i].order_number}</td>` + // 订单编号
            `<td></td>` + // 拟申报名称
            `<td>${tableData[i].name ? tableData[i].name : ""}</td>` + // 定稿名称
            `<td></td>` + // 代理人
            `<td>${tableData[i].type}</td>` + // 专利类型
            `<td>${tableData[i].application_number ? tableData[i].application_number: ''}</td>` + // 申请号
            `<td>${tableData[i].submit_at ? tableData[i].submit_at : ""}</td>` + // 申报时间
            // `<td>${tableData[i].updated_at}</td>` + // 更新时间
            `<td>${tableData[i].created_at}</td>` + // 定稿时间
            `<td></td>` + // 发明人定稿时间
            `<td></td>` + // 第一发明人
            `<td></td>` + // 身份证号
            `<td></td>` + // 专利权人
            `<td></td>` + // 发明人
            `<td></td>` + // 联络人
            `<td></td>` + // 邮箱
            `<td></td>` + // 电话
            `<td>${this.getProcessingTime(tableData[i], 7)}</td>` + // 订单耗时
            `<td>${tableData[i].status}</td>` + // 流程状态
            `<td></td>`; // 备注
            // +`<td>${tableData[i].organization}</td>` // 提交机构
            // +`<td>${tableData[i].application_number}</td>` // 申请号
            // +`<td></td>` // 流程
            // +`<td></td>` // 审核次数
            // +`<td>${tableData[i].created_at}</td>` // 定稿时间
            `</tr>`;
        }
      }

      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });

      // let wb = xyXLSX.utils.table_to_book(template.$el);
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },
    // 异常数据表导出
    exportExcelAbonormal(tabName, tabHandle, tableData) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      str0 += "</tr>";
      for (let i in tableData) {
        let index = parseInt(i) + 1;
        str +=
          `<tr><td>${index}</td>` +
          `<td>${tableData[i].order_number}</td>` + // 订单编号
          `<td>${tableData[i].agent ? tableData[i].agent : ""}</td>` + // 代理人
          `<td>${tableData[i].process ? tableData[i].process : ""}</td>` + // 流程人员
          `<td>${tableData[i].write_overtime}</td>` + // 案件撰写超时
          `<td>${tableData[i].rework_overtime}</td>` + // 案件返修超时(天)
          `<td>${tableData[i].send_final_document_overtime}</td>` + // 发送定稿文件超时
          `<td>${tableData[i].finalizing_overtime}</td>` + // 确认定稿超时
          `<td>${tableData[i].upload_report_file_overtime}</td>` + // 上报上传文件超时
          `<td>${tableData[i].reply_timeout}</td>` + // 答复超时
          `</tr>`
      }

      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },
    // 代理人列表导出
    exportExcelAgent(tabName, tabHandle, tableData) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      str0 += "</tr>";
      for (let i in tableData) {
        let index = parseInt(i) + 1;
        str +=
          `<tr><td>${index}</td>` +
          `<td>${tableData[i].name}</td>` + // 姓名
          `<td>${tableData[i].nickname}</td>` + // 昵称
          `<td>${tableData[i].channel_agent ? tableData[i].channel_agent.name : ""}</td>` + // 推荐人
          `<td>${tableData[i].type}</td>` + // 类型
          `<td>${tableData[i].is_teacher == 1 ? '导师' : '徒弟'}</td>` + // 代理人身份
          `<td>${this.getTeacher(tableData[i])}</td>` + // 师徒关系
          `<td>${tableData[i].phone}</td>` + // 手机号码
          `<td>${tableData[i].alipay_num}</td>` + // 支付宝账号
          `<td>${tableData[i].id_card_number}</td>` + // 身份证号
          `<td>${tableData[i].register_bank}</td>` + // 开户银行
          `<td>${tableData[i].bank_card}</td>` + // 银行卡号
          `<td>${tableData[i].organization}</td>` + // 现任机构
          `<td>${tableData[i].certificate_number}</td>` + // 代理师资格证编号
          `<td>${tableData[i].email}</td>` + // 个人邮箱
          `<td>${tableData[i].email_work}</td>` + // 工作邮箱
          `<td>${this.oneThejobDay(tableData[i].created_at)}</td>` + // 在职时间
          `<td>${this.formatTime(tableData[i].created_at)}</td>` + // 注册时间
          `</tr>`
      }

      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },
    // 离职人员列表导出
    exportExcelOutgoing(tabName, tabHandle, tableData) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      str0 += "</tr>";
      for (let i in tableData) {
        let index = parseInt(i) + 1;
        str +=
          `<tr><td>${index}</td>` +
          `<td>${tableData[i].name}</td>` + // 姓名
          `<td>${tableData[i].role.display_name}</td>` + // 职别
          `<td>${tableData[i].phone}</td>` + // 手机号码
          `<td>${tableData[i].email}</td>` + // 个人邮箱
          `<td>${tableData[i].email_work}</td>` + // 原邮箱
          `<td>${this.IncumbencyTime(tableData[i].created_at,tableData[i].leaved_at)}</td>` + // 在职时间
          `<td>${this.formatTime(tableData[i].created_at)}</td>` + // 注册时间
          `<td>${this.formatTime(tableData[i].leaved_at)}</td>` + // 离职时间
          `</tr>`
      }

      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },
    // 结算统计导出表
    exportFinialSum(tabName, tabHandle, tableData, type) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      str0 += "</tr>";
      if (type == 1) {
        for (let i in tableData) {
        let index = parseInt(i) + 1;
          str +=
            `<tr><td>${index}</td>` +
            `<td>${tableData[i].name}</td>` + // 代理人
            `<td>${tableData[i].reward}</td>` + // 总奖励金额（元）
            `<td>${tableData[i].deduction}</td>` + // 总扣款金额（元）
            `<td>${tableData[i].unsettled}</td>` + // 未结算金额（元）
            `<td>${tableData[i].settled}</td>` + // 已结算金额（元）
            `<td>${tableData[i].total}</td>` + // 总结算金额（元）
            `</tr>`
        }
      } else {
        for (let i in tableData) {
        let index = parseInt(i) + 1;
          str +=
            `<tr><td>${index}</td>` +
            `<td>${tableData[i].order_number}</td>` + // 订单编号
            `<td>${tableData[i].patent_name}</td>` + // 拟申报专利名称
            `<td>${tableData[i].name}</td>` + // 定稿名称
            `<td>${tableData[i].agent_name}</td>` + // 代理人
            `<td>${tableData[i].submit_time}</td>` + // 提交时间
            `<td>${tableData[i].final_time}</td>` + // 定稿时间
            `<td>${tableData[i].first_inventor}</td>` + // 第一发明人
            `<td>${tableData[i].id_card}</td>` + // 身份证号
            `<td>${tableData[i].patent_user}</td>` + // 专利权人
            `<td>${tableData[i].inventor}</td>` + // 发明人
            `<td>${tableData[i].liaisons}</td>` + // 联络人
            `<td>${tableData[i].liaisons_email}</td>` + // 邮箱
            `<td>${tableData[i].liaisons_tel}</td>` + // 电话
            `<td>${tableData[i].consume_time}</td>` + // 订单耗时
            `<td>${tableData[i].settlement_type}</td>` + // 结算类型
            `<td>${tableData[i].settlement_price}</td>` + // 结算金额(元)
            `<td>${tableData[i].deduction_price}</td>` + // 扣款金额(元)
            `<td>${this.getExplainData(tableData[i].deduction_explain)}</td>` + // 扣款原因
            `<td>${tableData[i].reward_price}</td>` + // 奖励金额(元)
            `<td>${this.getExplainData(tableData[i].reward_explain)}</td>` + // 奖励原因
            `<td>${tableData[i].total}</td>` + // 合计(元)

            // `<td>${tableData[i].order_status}</td>` + // 流程状态
            `</tr>`
        }
      }


      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },

    // 代理人上月结算明细
    exportExcelLastMonthSettlement(tabName, tabHandle, tableData, type) {
      let str0 = "<tr><td>序号</td>"; //表头
      let str = ""; //表身
      for (let tabHandleKey in tabHandle) {
        str0 += "<td>" + tabHandle[tabHandleKey] + "</td>";
      }
      str0 += "</tr>";
      for (let i in tableData) {
      let index = parseInt(i) + 1;
        str +=
          `<tr><td>${index}</td>` +
          `<td>${tableData[i].final ? tableData[i].final.order_number : ''}</td>` + // 订单编号
          `<td>${tableData[i].final ? tableData[i].final.name : ''}</td>` + // 定稿名称
          `<td>${tableData[i].name}</td>` + // 结算名称
          `<td>${tableData[i].deduction}</td>` + // 扣款金额
          `<td>${tableData[i].reward}</td>` + // 奖励金额
          `<td>${tableData[i].prices}</td>` + // 结算金额
          `<td>${tableData[i].real_price}</td>` + // 实际金额
          `<td>${tableData[i].created_at}</td>` + // 结算时间
          `</tr>`
      }

      let data = {
        tabHandle: tabHandle,
        tabData: tableData,
        dataStr: str0 + str
      };
      let template = new Vue({
        el: "#exportExcelTemplate",
        data: data,
        template: `
          <div id="exportExcelTemplate" style="display: none">
            <table v-html="dataStr">
                  {{dataStr}}
            </table>
          </div>`
      });
      let wb = xyXLSX.utils.table_to_book(template.$el, {
        raw: true
      });
      let wbout = xyXLSX.write(wb, {
        bookType: "xlsx",
        bookSST: true,
        type: "array"
      });
      try {
        xyFileSaver.saveAs(
          new Blob([wbout], {
            type: "application/octet-stream"
          }),
          tabName + ".xlsx"
        );
      } catch (e) {
        if (typeof console !== "undefined") console.log(e, wbout);
      }
      return wbout;
    },
    // 处理师徒关系
    getTeacher(data) {
      if (data.is_teacher == 1 && data.student.length != 0) {
        let studentName = data.student.map(v => v.name).join('、')
        return `徒弟：${studentName}`
      } else if (data.is_teacher == 2 && data.teacher) {
        return `导师：${data.teacher.name}`
      } else {
        return ''
      }
    },
    //
    oneThejobDay(value) {
      //获取入职时间戳
      value = value.replace(/-/g, "/");
      var createTime = new Date(value);
      //获取当前的时间戳
      var nowTime = new Date();
      let processingTime = ''
      //获取处理时间戳
      let cha = nowTime - createTime;
      let day = 1000 * 60 * 60 * 24;
      var month = day * 30
      let year = month * 12

      // processingTime += (cha / month).toFixed(1)
      let round2 = (cha / month).toFixed(2)
      processingTime = (Math.ceil(round2 * 10) / 10).toFixed(1)
      if (processingTime <= 0) {
        return '0.0'
      }  else {
        return processingTime;
      }
    },
    // 处理时间格式
    formatTime(value) {
      return  moment(value).format('YYYY-MM-DD')
    },
    // 离职表导出获取在职时间
    IncumbencyTime(leaved_at,created_at) {
      if (created_at && leaved_at) {
        leaved_at = leaved_at.replace(/-/g, "/");
        created_at = created_at.replace(/-/g, "/");
        var createTime = new Date(leaved_at);
        //获取当前的时间戳
        var nowTime = new Date(created_at);
        let processingTime = ''
        //获取处理时间戳
        let cha = nowTime - createTime;
        let day = 1000 * 60 * 60 * 24;
        var month = day * 30
        let year = month * 12

        let round2 = (cha / month).toFixed(2)
        processingTime = (Math.ceil(round2 * 10) / 10).toFixed(1)
        if (processingTime <= 0) {
          return '0.0'
        }  else {
          return processingTime;
        }

        // return processingTime;

      } else {
        return ''
      }

    },
    // 结算详情导出 处理说明数据
    getExplainData (data, type) {
      let ExplainData = []
      if (data && data.length > 0) {
        for (let i = 0; i < data.length; i++) {
          let item = `原因：${data[i].reason}，金额：${data[i].money}`
          ExplainData.push(item)
        }
        ExplainData.join(",")
        return ExplainData
      } else {
        return ''
      }

    }
  },
  watch: {},
  filters: {},
  beforeDestroy() {}
};
</script>
